<p>In the interest of code clarity, <code>static</code> members of a <code>base</code> class should never be accessed using a derived type’s name.
Doing so is confusing and could create the illusion that two different static members exist.</p>
<h2>Noncompliant Code Example</h2>
<pre>
class Parent {
  public static int counter;
}

class Child extends Parent {
  public Child() {
    Child.counter++;  // Noncompliant
  }
}
</pre>
<h2>Compliant Solution</h2>
<pre>
class Parent {
  public static int counter;
}

class Child extends Parent {
  public Child() {
    Parent.counter++;
  }
}
</pre>

